package com.pai4j.domain.vo.llm;

import com.google.common.collect.Lists;
import lombok.Data;

import java.util.List;

/**
 * 大模型回复
 *
 * @author: CYM-pai
 * @date: 2025/03/24 21:07
 **/
@Data
public class ChatCompletionResponse {
    
        // 聊天完成的唯一标识符
        private String id;
        // 聊天完成对象的类型，用于标识这是一个聊天完成的对象
        private String object;
        // 聊天完成的创建时间戳
        private long created;
        // 用于完成聊天的模型名称
        private String model;
        // 聊天完成的选择列表，包含了一个或多个聊天选择
        private List<ChatCompletionChoice> choices;
        // 使用情况对象，包含了聊天完成的使用统计信息
        private Usage usage;
        
        /**
         * 获取聊天完成的选择列表
         * 如果当前对象尚未初始化choices属性或其为null，
         * 则返回一个空的选择列表
         *
         * @return 聊天完成的选择列表，如果为null则返回空列表
         */
        public List<ChatCompletionChoice> getChoices() {
            if (choices == null) {
                return Lists.newArrayList();
            }
            return choices;
        }
}
